#ifndef MPP_H
#define MPP_H

#include <QDebug>

class Mpp : public QObject
{
    Q_OBJECT

public:
    static Mpp* getInstance();

    /* 读取当前mpp版本 */
    QString& readMppVersion();
    /* 初始化camera */
    void initCamera(const QRect &rect);
    /* 设置实时影像的位置*/
    void setRealtimeImageRect(const QRect &rect);

    /* 开启实时影像 */
    void startRealtimeImage();
    /* 暂停实时影像 */
    void stopRealtimeImage();
    /* 开始实时影像录制，pathname：mp4的绝对路径 */
    void startRealtimeImageRecord(const QString& pathname);
    /* 停止视频录制 */
    void stopRealtimeImageRecord();
    /* 对实时影像拍照，filePaths：jpg/bmp的绝对路径 */
    void takePhotoByRealtimeImage(const QVector<QString> &filePaths);
    /* 对影像回放拍照，filePaths：jpg/bmp的绝对路径 */
    void takePhotoByImageplayback(const QVector<QString> &filePaths);

    /* 开始mp4视频播放 */
    void startMp4VideoPlayer(const QRect &rect, const QString& pathname);
    /* 关闭mp4视频播放 */
    void stopMp4VideoPlayer();
    /* 暂停/开始视频播放 */
    void controlMp4VideoPlayerState();
    /* 向后 */
    void controlMp4VideoPlayerRewind();
    /* 向前 */
    void controlMp4VideoPlayerForward();
    /* 拖动 */
    void controlMp4VideoPlayerSeek(int type, int64_t position);
    /* 获取当前mp4视频时长 */
    QString getMp4VideoDuration();

signals:
    /* 同步视频播放进度 */
    void syncMp4VideoPositionSignal(QString);
    /* 视频播放结束 */
    void mp4VideoPlayEndSignal();

private:
    Mpp();
};

#endif // MPP_H
